package com.common.log.service;

import com.common.core.constant.SecurityConstants;
import com.domain.SysOperLog;
import com.opfegin.api.RemoteLogService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;

/**
 * 异步调用日志服务
 *
 * @author ruoyi
 */
@Service
public class AsyncLogService {
    @Autowired
    private RemoteLogService remoteLogService;

    /**
     * 保存系统日志记录
     */
    @Async
    /** @Async，表示该方法会在一个单独的线程中异步执行。当调用 saveSysLog 方法时，该方法会在新的线程中执行，而不会阻塞当前线程。
    需要注意的是，使用 @Async 注解时，方法必须是公共方法，不能是私有方法，
    并且该注解通常用于无返回值的方法。如果需要有返回值，可以使用 Future<T> 或 CompletableFuture<T> 来包装返回结果。*/
    public void saveSysLog(SysOperLog sysOperLog) {
        remoteLogService.saveLog(sysOperLog);
    }
}
